/**
 * @file    framework/gui.h
 * @brief   Include all components of the gui framework
 ****************************************************************************
 * @version 0.8.161 $Id: gui.h 2875 2010-08-08 19:26:36Z alex $
 * @author  Alessandro Polo
 ****************************************************************************/
/*! @namespace wosh::gui
 * @brief   Contains classes regarding GUI. There are many built-in graphical interface
 *          for core-modules, most objects and services.
 * @warning WOSH GUI Framework is under revision from 0.8.013.
 * @see     Take a look to \ref page_applications_woshshop and \ref page_applications_woshkiosk
 * @see     \ref page_framework_gui
 *
 *
 * Implementation is based on QT library, most component inherits QWidget class.
 *
 * Source tree is organized as follows:
 *  - bundles
 *    - devices
 *    - services
 *  - kiosk
 *  - modules
 *  - {..} common classes
 *
 * WOSH GUI architecture follows strongly the QT software models, some components are
 * designed as shared adapter to the WOSH underlying system.
 *
 *
 * WOSH GUI framework is not built-in by default, makefile must include directive:
 * \code
CONFIG += WOSH_GUI
 * \endcode
 * It will force inclusion of <a href="../../src/framework/gui/gui.pro">framework/gui/gui.pro</a>
 * which defines following \c qmake directive (to enable QT.Gui headers and linking references):
 * \code
QT += gui
 * \endcode
 * 
 *
 ****************************************************************************/
/*! \defgroup Gui WOSH GUI
 * Graphical interfaces to WOSH components, modules and bundles.
 *
 * Graphic User Interfaces of WOSH systems are based on QT(Gui) library.
 * 
 * \ref wosh::gui namespace collects a set of base components and many implemented
 * interfaces for cor-modules and most common bundles.
 *
 * See \ref page_framework_gui for details.
 *
 *  - Core-Module User Interfaces
 *    - wosh::gui::FormBundleManager [wosh::BundleManager]
 *    - wosh::gui::FormBusManager [wosh::BusManager]
 *    - wosh::gui::FormDeviceManager [wosh::DeviceManager]
 *    - wosh::gui::FormFileSystem [wosh::FileSystem]
 *    - wosh::gui::FormNetworkManager [wosh::NetworkManager]
 *    - wosh::gui::FormObjectFactory [wosh::ObjectFactory]
 *    - wosh::gui::FormPersistenceManager [wosh::PersistenceManager]
 *    - wosh::gui::FormSecurityManager [wosh::SecurityManager]
 *    - wosh::gui::FormSessionManager [wosh::SessionManager]
 *    - wosh::gui::FormSystemLogger [wosh::SystemLogger]
 *    - wosh::gui::FormSystemMonitor [wosh::SystemMonitor]
 *    - wosh::gui::FormThreadManager [wosh::ThreadManager]
 *    - wosh::gui::FormUserManager [wosh::UserManager]
 *
 *  - Bundles [\ref Services "services"]
 *    - wosh::gui::FormBuildingManager [wosh::interfaces::services::BuildingManager] (wosh::services::BuildingManagerBundle)
 *    - wosh::gui::FormCommunicationManager [wosh::interfaces::services::CommunicationManager] (wosh::services::CommunicationManagerBundle)
 *    - wosh::gui::FormDesktopNotifier [wosh::interfaces::services::DesktopNotifier] (wosh::services::DesktopNotifierBundle)
 *    - wosh::gui::FormDiscoveryUdp [wosh::interfaces::services::DiscoveryUdp] (wosh::services::DiscoveryUdpBundle)
 *    - wosh::gui::FormHeyu [wosh::interfaces::services::Heyu] (wosh::services::HeyuBundle)
 *    - wosh::gui::FormMediaDirector [wosh::interfaces::services::CommunicationManager] (wosh::services::MediaDirectorBundle)
 *    - wosh::gui::FormTaskManager [wosh::interfaces::services::TaskManager] (wosh::services::TaskManagerBundle)
 *    - wosh::gui::FormWeather [wosh::interfaces::services::Weather] (wosh::services::WeatherBundle)
 *
 *  - Bundles [\ref Devices "devices"]
 *    - wosh::gui::FormJabberGloox [wosh::interfaces::devices::JabberGloox] (wosh::devices::JabberGlooxBundle)
 *    - wosh::gui::FormModemDsl [wosh::interfaces::devices::ModemDsl] (wosh::devices::ModemDslBundle)
 *    - wosh::gui::FormPlayerAudio [wosh::interfaces::devices::PlayerAudio] (wosh::devices::PlayerGStreamerBundle, wosh::devices::PlayerPhononBundle)
 *
 *  - Widgets [interfaces to WOSH objects]
 *    - wosh::gui::wCore_Message [wosh::Message]
 *
 * Moreover the GUI framework provides a set of components:
 *  - wosh::gui::BusConnectorQt [kind of wosh::BusConnector]
 *  - wosh::gui::BusRingQt [kind of wosh::Bus]
 *  - wosh::gui::FormBusViewer
 *  - wosh::gui::FormConsole
 *  - wosh::gui::FormLogViewer
 *  - wosh::gui::SessionQt [kind of wosh::Session]
 *  - wosh::gui::WidgetQMenu
 *  - wosh::gui::WidgetUpdateBar
 *  - wosh::gui::WidgetWoshBrowser
 *
 *
 ****************************************************************************/
/*! \page page_framework
 * \htmlonly <hr/> \endhtmlonly
 * \section page_framework_gui WOSH GUI Framework
 *
 * WOSH gui namespace is a rich set of classes based on QT4.
 * \ref page_applications_woshshop "WOSH WoshShop" and
 * \ref page_applications_woshremote "WOSH Remote"
 *
 * GUI Framework is not included by default, you have to define a flag in the application's
 * project file. woshshop.pro (WOSH WorkShop) includes this directive:
 * \verbatim
CONFIG += WOSH_GUI
\endverbatim
 *
 * [..]
 *
 * wosh::gui::IWidget is  [..]
 *
 * Source files are placed in <a href="../../src/framework/gui/">src/framework/gui/</a>.
 *
 * \c Forms are based on \c QWidget class.
 *
 * \par Bus and Messages
 *  You should have read page_core_bus before going on, moreover you should
 *  have some basic knowledge of QT framework and its signals/slots mechanism.
 *  Because of QT threading and classical inter-thread calls, a custom
 *  wosh::Bus implementation: wosh::gui::BusQt is provided to maintain the standard.
 *  In short, you can't update a QWidget within IBusListener::busMessage() of
 *  a generic wosh::Bus implementation, but you may do processing and emit signals
 *  to local slots. Since code would often look repetitive, wosh::gui::BusConnectorQt 
 *  has been implemented to masquerade the singal/slot code, and it is fine to interact
 *  with graphical objects (usually a QWidget) within its scope.
 *
 * The good news is that you shouldn't usually care about this, because the base
 * GUI interface wosh::gui::IWidget masquerades the lower-layer implementation,
 * a simple (but common) sample of bus I/O is:
 * \code


\endcode
 *
 *
 * WOSH Applications will often share some features and functionalities,
 * most common have been included in the framework for RAD.
 *
 *
 *
 ****************************************************************************/
/* Copyright (c) 2007-2010, WOSH - Wide Open Smart Home 
 * by Alessandro Polo - OpenSmartHome.com
 * All rights reserved.
 *
 * Redistribution and use in source and binary forms, with or without
 * modification, are permitted provided that the following conditions are met:
 *     * Redistributions of source code must retain the above copyright
 *       notice, this list of conditions and the following disclaimer.
 *     * Redistributions in binary form must reproduce the above copyright
 *       notice, this list of conditions and the following disclaimer in the
 *       documentation and/or other materials provided with the distribution.
 *     * Neither the name of the OpenSmartHome.com WOSH nor the
 *       names of its contributors may be used to endorse or promote products
 *       derived from this software without specific prior written permission.
 *
 * THIS SOFTWARE IS PROVIDED BY Alessandro Polo ''AS IS'' AND ANY
 * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
 * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
 * DISCLAIMED. IN NO EVENT SHALL Alessandro Polo BE LIABLE FOR ANY
 * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
 * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
 * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
 * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
 * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
 * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
 ****************************************************************************/

#ifndef __WOSH_FrameWork_Gui_H__
 #define __WOSH_FrameWork_Gui_H__

 #include <woshDefs.h>

namespace wosh {
 namespace gui { };
};




#endif //__WOSH_FrameWork_Gui_H__
